<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- designer-manual.qdoc -->
  <title>创建 Main Windows | Qt Designer 手册</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="../qtdoc/index.html">Qt 5.14</a></td><td ><a href="qtdesigner-manual.html">Qt Designer 手册</a></td><td >创建 Main Windows</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtdesigner-manual.html">Qt 5.14.2 参考文档</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
  <link rel="prev" href="designer-using-containers.html" />
  <link rel="next" href="designer-resources.html" />
<p class="naviNextPrevious headerNavi">
<a class="prevPage" href="designer-using-containers.html">使用容器</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="designer-resources.html">编辑资源</a>
</p><p/>
<div class="sidebar">
<div class="toc">
<h3><a name="toc">目录</a></h3>
<ul>
<li class="level1"><a href="#menus">菜单</a></li>
<li class="level2"><a href="#creating-a-menu">创建菜单</a></li>
<li class="level2"><a href="#creating-a-menu-entry">创建菜单项</a></li>
<li class="level1"><a href="#toolbars">工具栏</a></li>
<li class="level2"><a href="#creating-and-removing-a-toolbar">创建和删除工具栏</a></li>
<li class="level2"><a href="#adding-and-removing-toolbar-buttons">添加和删除工具栏按钮</a></li>
<li class="level1"><a href="#actions">动作</a></li>
<li class="level2"><a href="#the-action-editor">动作编辑器</a></li>
<li class="level2"><a href="#creating-an-action">创建动作</a></li>
<li class="level2"><a href="#adding-an-action">添加动作</a></li>
<li class="level1"><a href="#dock-widgets">可停靠小部件</a></li>
<li class="level2"><a href="#adding-a-dock-widget">添加可停靠小部件</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">创建 Main Windows</h1>
<span class="subtitle"></span>
<!-- $$$designer-creating-mainwindows.html-description -->
<div class="descr"> <a name="details"></a>
<p><i>Qt Designer</i> 可用于创建用于不同目的的用户界面，它为每个用户界面提供了不同类型的窗体模板。主窗体模板用于创建带有菜单栏、工具栏和停靠小部件的应用程序窗体 。</p>
<p>通过打开 <b>文件(F)</b> 菜单并选择 <b>新建(N)...</b> 项，或按 <b>Ctrl+N</b> 。然后，选择 <b>Main Window</b> 模板。该模板提供了一个主应用程序窗口，默认情况下包含一个菜单栏 —— 如果不需要，可以删除它们。</p>
<p>如果您删除了菜单栏，那么可以通过在 main window 窗体中右键单击获得的上下文菜单中选择 <b>创建菜单栏</b> 选项来创建一个新的菜单栏 。</p>
<p>一个应用程序只能有 <b>一个</b> 菜单栏，但可以有 <b>多个</b> 工具栏。</p>
<a name="menus"></a>
<h2 id="menus">菜单</h2>
<p>通过修改 <b>在这里输入</b> 占位符的内容，菜单被添加到菜单栏中。占位符是为了编辑目的而出现，并且不会在预览或完成的窗口中显示。</p>
<p>创建之后，可以使用 <a href="designer-widget-mode.html#the-property-editor">属性编辑器（Property Editor）</a> 访问菜单的属性，并且可以通过 <a href="designer-widget-mode.html#the-object-inspector">对象查看器（The Object Inspector）</a> 访问每个菜单 。</p>
<p>可以通过在菜单栏的菜单标签上方打开一个上下文菜单，并选择 <b>移除菜单 '某菜单_名字'</b> 来删除现有的菜单 。</p>
<a name="creatingamenu"></a><div class="float-left"><p><img src="images/designer-creating-menu1.png" alt="" /> <img src="images/designer-creating-menu2.png" alt="" /> <br />
 <img src="images/designer-creating-menu3.png" alt="" /> <img src="images/designer-creating-menu4.png" alt="" /></p>
</div><a name="creating-a-menu"></a>
<h3 id="creating-a-menu">创建菜单</h3>
<p>双击占位符项开始编辑。可以修改使用行编辑器显示的菜单文本。</p>
<p>为新菜单插入所需的文本。插入一个与号字符(&)将导致它后面的字母被用作菜单的助记符。</p>
<p>按 <b>回车键</b> 接受新文本，或按 <b>Escape</b> 拒绝新文本。如果需要，您可以稍后撤消编辑操作 。</p>
<div class="clear-both"></div><p>菜单也可以在菜单栏中重新排列，只需将它们拖放到所选位置即可。一条垂直的红线表示将插入菜单的位置。</p>
<p>菜单可以包含任意数量的条目和分隔符，并且可以嵌套到所需的深度。向菜单添加新条目可以通过按常规方式导航菜单结构来实现。</p>
<a name="creatingamenuentry"></a><div class="float-right"><p><img src="images/designer-creating-menu-entry1.png" alt="" /> <img src="images/designer-creating-menu-entry2.png" alt="" /> <br />
 <img src="images/designer-creating-menu-entry3.png" alt="" /> <img src="images/designer-creating-menu-entry4.png" alt="" /></p>
</div><a name="creating-a-menu-entry"></a>
<h3 id="creating-a-menu-entry">创建菜单项</h3>
<p>双击 <b>在这里输入</b> 占位符开始编辑，或者双击 <b>添加分隔符</b> 在菜单的最后一个条目之后插入一个新的分隔符行。</p>
<p>菜单条目的文本使用行编辑器显示，并且可以修改。</p>
<p>为新条目插入所需的文本，可以选择使用与号字符(&)标记要用作条目助记符的字母。</p>
<p>按 <b>Return</b> 或 <b>Enter</b> 接受新文本，或按 <b>Escape</b> 拒绝新文本。为这个菜单项创建的动作可以通过 <a href="designer-creating-mainwindows.html#theactioneditor">动作编辑器</a> 访问，并且可以在那里设置任何相关的键盘快捷键。</p>
<div class="clear-both"></div><p>就像菜单一样，只需将条目拖放移动它们到首选位置就可以。当一个条目被拖放到一个关闭的菜单上时，菜单将打开并允许它插入到那里。因为菜单项是基于操作的，所以它们也可以被拖放到工具栏上，在那里它们将作为工具栏按钮显示。</p>
<a name="toolbars"></a>
<h2 id="toolbars">工具栏</h2>
<div class="float-left"><p><img src="images/designer-creating-toolbar.png" alt="" /></p>
</div><a name="creating-and-removing-a-toolbar"></a>
<h3 id="creating-and-removing-a-toolbar">创建和删除工具栏</h3>
<p>工具栏以类似于菜单栏的方式添加到主窗口:从窗体的上下文菜单中选择 <b>添加工具栏</b> 选项。另外，如果主窗口中有一个现有的工具栏，您可以单击它右边的箭头来创建一个新的工具栏。</p>
<p>工具栏通过工具栏上下文菜单中的一个条目从窗体中删除。</p>
<div class="clear-both"></div><a name="adding-and-removing-toolbar-buttons"></a>
<h3 id="adding-and-removing-toolbar-buttons">添加和删除工具栏按钮</h3>
<p>创建工具栏按钮 。先在 <a href="designer-creating-mainwindows.html#theactioneditor">动作编辑器</a> 中创建 <b>动作</b> ，然后拖拽到工具栏上，由于 <b>动作</b> 可以由菜单项和工具栏按钮来表示，所以它们可以在菜单和工具栏之间移动。</p>
<div class="float-right"><p><img src="images/designer-adding-toolbar-action.png" alt="" /> <img src="images/designer-removing-toolbar-action.png" alt="" /></p>
</div><p>若要在菜单和工具栏之间共享操作，请将其图标从动作编辑器拖动到工具栏，而不是从其条目所在的菜单中拖动。有关此过程的更多信息，请参见 <a href="designer-creating-mainwindows.html#adding-an-action">添加动作</a> 。</p>
<p>工具栏按钮通过工具栏的上下文菜单移除。</p>
<div class="clear-both"></div><a name="actions"></a>
<h2 id="actions">动作</h2>
<p>有了菜单栏和工具栏，就可以用 <b>动作</b> 填充它们了。菜单和工具栏的新 <b>动作</b> 都在动作编辑器窗口中创建，简化了 <b>动作</b> 的创建和管理。</p>
<a name="theactioneditor"></a><div class="float-left"><p><img src="images/designer-action-editor.png" alt="" /></p>
</div><a name="the-action-editor"></a>
<h3 id="the-action-editor">动作编辑器</h3>
<p>通过打开 <b>视图(V)</b> 菜单并选择 <b>动作编辑器</b> 选项来启用动作编辑器。</p>
<p>动作编辑器允许您 <b>新建</b> 动作和 <b>删除</b> 动作。它还提供了一个搜索功能， <b>过滤</b> ，使用 <b>动作</b> 的文本。</p>
<p><i>Qt Designer</i> 的动作编辑器可以在经典的 <b>图标视图</b> 和 <b>细节视图</b> 方式显示。下面的屏幕截图显示了动作编辑器的 <b>细节视图</b> 。您还可以在菜单、工具栏和窗体之间复制和粘贴操作。</p>
<div class="clear-both"></div><a name="creating-an-action"></a>
<h3 id="creating-an-action">创建动作</h3>
<p>要创建一个动作，使用动作编辑器的 <b>新建</b> 按钮，它将弹出一个输入对话框。为新动作输入 <b>文本</b>  —— 这是将出现在菜单条目中的文本，并作为动作的工具提示。文本还会自动添加到“action”前缀后，从而创建动作的 <b>对象名称</b> 。</p>
<p>此外，对话框还提供了选择动作 <b>图标</b> 以及移除当前图标的选项。</p>
<p>一旦创建了动作，就可以在动作适用的地方使用它。</p>
<div class="clear-left"></div><a name="addinganaction"></a><div class="float-right"><p><img src="images/designer-adding-menu-action.png" alt="" /> <img src="images/designer-adding-toolbar-action.png" alt="" /></p>
</div><a name="adding-an-action"></a>
<h3 id="adding-an-action">添加动作</h3>
<p>要向菜单或工具栏添加动作，只需在动作编辑器中按下动作上的鼠标左键，并将其拖动到相应的位置。</p>
<p><i>Qt Designer</i> 提供了突出显示的指导线，告诉您将在哪里添加动作。当您找到正确的位置时，释放鼠标按钮以添加动作。</p>
<div class="clear-right"></div><a name="dock-widgets"></a>
<h2 id="dock-widgets">可停靠小部件</h2>
<p>因为 Dock Widget 是 <a href="designer-using-containers.html">container widgets</a> ，所以可以按照通常的方式将它们添加到窗体中。一旦添加到窗体中，默认情况下 Dock Widget 不一定会放置在想要的停靠区域中;您需要将的 <b>docked</b> 属性设置为true，并为其 <b>dockWidgetArea</b> 属性选择一个适当的值。</p>
<a name="addingadockwidget"></a><div class="float-left"><p><img src="images/designer-adding-dockwidget.png" alt="" /></p>
</div><a name="adding-a-dock-widget"></a>
<h3 id="adding-a-dock-widget">添加可停靠小部件</h3>
<p>若要将 Dock Widget 添加到窗体中，请从 Widget Box 的 <b>Containers</b> 部分拖动一个 Dock Widget ，并将其拖放到主窗体区域。不要将dock小部件添加到现有布局中。相反，打开 <b>属性编辑器</b> 并启用 <b>docked</b> 属性将其放置在停靠区域中。</p>
<p>请注意，如果在将布局应用到中心小部件（central widget）之前将 Dock Widget 添加到窗体，那么有时配置 Dock Widget 会更容易。例如，可以卸载它并调整它的大小，从而使添加子小部件更加方便。</p>
<p>Dock widget 可以选择浮动为独立的工具窗口。因此，通过设置它们的 <a href="../qtwidgets/qdockwidget.html#windowTitle-prop">windowTitle</a> 属性来为它们赋予窗口标题是很有用的。这也有助于在窗体中识别它们。</p>
<div class="clear-both"></div></div>
<!-- @@@designer-creating-mainwindows.html -->
<p class="naviNextPrevious footerNavi">
<a class="prevPage" href="designer-using-containers.html">使用容器</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="designer-resources.html">编辑资源</a>
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
